package com.digua.base.socket

interface ReconnectManager {
    /**
     * 是否正在重连
     */
    fun reconnecting(): Boolean

    /**
     * 开始重连
     */
    fun startReconnect()

    /**
     * 停止重连
     */
    fun stopReconnect()

    /**
     * 链接成功
     */
    fun onConnected()

    /**
     * 链接失败
     *
     * @param th 失败原因
     */
    fun onConnectError(th: Throwable?)

    /**
     * 销毁资源
     */
    fun destroy()

    fun isConnected(): Boolean
    fun isReconnecting(): Boolean

    /**
     * 链接成功或失败事件
     */
    public interface OnConnectListener {
        fun onConnected()
        fun onDisconnect()
    }
}